gdkwindow: ignore shape on client-side windows when recomputing visible regions
authorCarlos Garnacho <carlosg@gnome.org>
Mon, 28 Apr 2014 19:19:40 +0000 (21:19 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Mon, 28 Apr 2014 20:44:59 +0000 (22:44 +0200)
Rendering doesn't do much about clipping drawing operations to the window shape,
although invalidation applies the shape to every window, leaving possibly trails
of "overrendered" content. So ensure the shape portions get invalidated too when
the window is moved/resized.

https://bugzilla.gnome.org/show_bug.cgi?id=729095

gdk/gdkwindow.c

index 6e7bcfdb8e22f5ae155ae69a76054beee0f698b3..9eeb7333bd4cfb911ae8fcd193748ee9d039b6da 100644 (file)
@@ -935,7 +935,7 @@ recompute_visible_regions_internal (GdkWindow *private,
          /* Convert from parent coords to window coords */
          cairo_region_translate (new_clip, -private->x, -private->y);
 
-         if (private->shape)
+         if (should_apply_clip_as_shape (private) && private->shape)
            cairo_region_intersect (new_clip, private->shape);
        }
       else